cmake_minimum_required(VERSION 3.0.2)
project(controller)

## Compile as C++11, supported in ROS Kinetic and newer
# add_compile_options(-std=c++11)
set(CMAKE_BUILD_TYPE "Release")
set(CMAKE_CXX_FLAGS "-std=c++11")


#这里注意加上px4_msgs功能包，就可以使用里面自定义的消息
find_package(catkin REQUIRED COMPONENTS
  message_generation
  roscpp
  rospy
  std_msgs
  geometry_msgs
  nav_msgs
  sensor_msgs
  mavros_msgs
  px4_msgs
)


catkin_package(
    INCLUDE_DIRS include
#  LIBRARIES px4_control
#  CATKIN_DEPENDS roscpp rospy std_msgs
#  DEPENDS system_lib
)

include_directories(
  include
  ${catkin_INCLUDE_DIRS}      #此项保证该包可以使用该工作空间下其他功能包的头文件
  /usr/local/include/eigen3
)

add_executable(px4_pose_estimator src/px4_pose_estimator.cpp)
target_link_libraries(px4_pose_estimator ${catkin_LIBRARIES})
add_dependencies(px4_pose_estimator px4_msgs_gencpp)#调用同一工作空间的自定义消息类型时注明依赖关系，防止发生头文件找不到的报错


add_executable(px4_pose_controller src/px4_pose_controller.cpp)
target_link_libraries(px4_pose_controller ${catkin_LIBRARIES})
add_dependencies(px4_pose_controller px4_msgs_gencpp)#调用同一工作空间的自定义消息类型时注明依赖关系，防止发生头文件找不到的报错


# add_executable(px4_control src/px4_control.cpp)
# target_link_libraries(px4_control ${catkin_LIBRARIES})


#将用到msgs里面消息的可执行文件添加上依赖
#如果缺少add_dependencies中对test_msgs_gencpp的依赖声明，在编译的时候如果先编译test包再编译#test_msgs包则会出现如下报错（ROS工作空间各个软件包的编译顺序是随机的），因为头文件test_msgs/#Test.h还未生成

# add_dependencies(test1 px4_msgs_gencpp)#调用同一工作空间的自定义消息类型时注明依赖关系，防止发生头文件找不到的报错









